﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using DAL;
namespace BLL.Admin
{
    // values_config: 0 -> danh muc nganh nghe ,1 -> chuyen mon

    public class NganhNgheDao
    {
        public int NganhNgheId{get;set;}
        public string Ten {get;set;}
        public string PhanLoai { get; set; }
    }
    public class NganhNgheHelper
    {
        public static void Add_NganhNghe(string Ten, int ValueConfig)
        { 
            var db = Connect.GetDataContext<TimViecDataContext>("Strconnect");
            tbl_DM_NganhNghe nganhnghe = new tbl_DM_NganhNghe();
            nganhnghe.Ten = Ten;
            nganhnghe.ValueConfig = ValueConfig;
            db.tbl_DM_NganhNghes.InsertOnSubmit(nganhnghe);
            db.SubmitChanges();
        }
        public static void Update_NganhNghe(int NganhNgheId,string Ten, int ValueConfig)
        {
            var db = Connect.GetDataContext<TimViecDataContext>("Strconnect");
            tbl_DM_NganhNghe nganhnghe = db.tbl_DM_NganhNghes.FirstOrDefault(k=>k.NganhNgheId==NganhNgheId);
            nganhnghe.Ten = Ten;
            nganhnghe.ValueConfig = ValueConfig;            
            db.SubmitChanges();
        }
        public static tbl_DM_NganhNghe Get_NganhNgheId(int NganhNgheId)
        {
            var db = Connect.GetDataContext<TimViecDataContext>("Strconnect");
            return db.tbl_DM_NganhNghes.FirstOrDefault(k => k.NganhNgheId == NganhNgheId);             
        }
        public static IQueryable List_NganhNghe_ValueConfig(int ValueConfig)
        {
            var db = Connect.GetDataContext<TimViecDataContext>("Strconnect");
            var query = from nganhnghe in db.tbl_DM_NganhNghes
                        where nganhnghe.ValueConfig == ValueConfig
                        orderby nganhnghe.Ten ascending
                        select new {
                            nganhnghe.NganhNgheId,
                            nganhnghe.Ten,
                        };
            return query;
        }
        public static List<NganhNgheDao> List_NganhNghe_Admin(string Ten,int ValueConfig)
        {
            var db = Connect.GetDataContext<TimViecDataContext>("Strconnect");
            var query = from nganhnghe in db.tbl_DM_NganhNghes
                        where nganhnghe.ValueConfig == ValueConfig && nganhnghe.Ten.Contains(Ten)
                        orderby nganhnghe.Ten ascending
                        select new NganhNgheDao
                        {
                            NganhNgheId=nganhnghe.NganhNgheId,
                            Ten=nganhnghe.Ten,
                            PhanLoai = nganhnghe.ValueConfig==0?"Ngành nghề":"Chuyên môn",
                        };
            return query.ToList() ;
        }
        public static IQueryable DS_NganhNghe_Admin(string Ten, int ValueConfig, int Page,int Take)
        {
            var db = Connect.GetDataContext<TimViecDataContext>("Strconnect");
            var query = from nganhnghe in db.tbl_DM_NganhNghes
                        where nganhnghe.ValueConfig == ValueConfig && nganhnghe.Ten.Contains(Ten)
                        orderby nganhnghe.Ten ascending
                        select new
                        {
                            NganhNgheId = nganhnghe.NganhNgheId,
                            Ten = nganhnghe.Ten,
                            PhanLoai = nganhnghe.ValueConfig == 0 ? "Ngành nghề" : "Chuyên môn",
                        };            
            return query.Skip(Take * (Page - 1)).Take(Take);
        }
        public static int DS_NganhNghe_Admin_Count(string Ten, int ValueConfig)
        {
            var db = Connect.GetDataContext<TimViecDataContext>("Strconnect");
            var query = from nganhnghe in db.tbl_DM_NganhNghes
                        where nganhnghe.ValueConfig == ValueConfig && nganhnghe.Ten.Contains(Ten)
                        orderby nganhnghe.Ten ascending
                        select new
                        {
                            nganhnghe
                        };
            return query.Count();
        }
    }
}